import router from './router'
import store from './store'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
// 取消转圈
NProgress.configure({ showSpinner: false })

// 白名单 不需要登录就可以访问的页面
const whiteList = ['/login', '/404', '/abcd']

router.beforeEach(async(to, from, next) => {
  console.log('路由一定会经过这里', to, store)
  NProgress.start()
  // 1.如果有token && 去登录页 ===> 让他去主页
  // 2.如果没有token && 去的不是登录页 ===> 让他去登录页
  const token = store.state.user.token
  if (token && to.path === '/login') {
    console.log('有了token,login不能访问!')
    next('/')
    NProgress.done()
  } else if (!token && whiteList.includes(to.path) === false) {
    console.log('没有登录&&访问页面不是:/login, /404, /abcd中的一个')
    next('/login')
    NProgress.done()
  } else {
    // 调用action 获取用户个人信息 保存到vuex
    if (!store.state.user.userInfo.userId && token) {
      await store.dispatch('user/getUserInfo')
    }
    next()
  }
})

router.afterEach((to, from) => {
  NProgress.done()
})

